home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
maximus
/
mxms_161.zip
/
MAXHEAD.ZIP
/
MODEM.H
< prev
next >
Wrap
C/C++ Source or Header
|
1990-08-07
|
9KB
|
246 lines
/***************************************************************************
* *
* MAXIMUS-CBCS Source Code, Version 1.02 *
* Copyright 1989, 1990 by Scott J. Dudley. All rights reserved. *
* *
* FOSSIL #define's and declarations *
* *
* For complete details of the licensing restrictions, please refer to *
* the licence agreement, which is published in its entirety in MAX.C *
* and LICENCE.MAX. *
* *
* USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE *
* MAXIMUS-CBCS LICENSING AGREEMENT. IF YOU DO NOT FIND THE TEXT OF THIS *
* AGREEMENT IN ANY OF THE AFOREMENTIONED FILES, OR IF YOU DO NOT HAVE *
* THESE FILES, YOU SHOULD IMMEDIATELY CONTACT THE AUTHOR AT ONE OF THE *
* ADDRESSES LISTED BELOW. IN NO EVENT SHOULD YOU PROCEED TO USE THIS *
* FILE WITHOUT HAVING ACCEPTED THE TERMS OF THE MAXIMUS-CBCS LICENSING *
* AGREEMENT, OR SUCH OTHER AGREEMENT AS YOU ARE ABLE TO REACH WITH THE *
* AUTHOR. *
* *
* You can contact the author at one of the address listed below: *
* *
* Scott Dudley FidoNet 1:249/106 *
* 777 Downing St. IMEXnet 89:483/202 *
* Kingston, Ont. Internet f106.n249.z1.fidonet.org *
* Canada - K7M 5N3 BBS (613) 389-8315 - HST/14.4K, 24hrs *
* *
***************************************************************************/
/*
* If you are using K&R C, remove the comments below:
*
* #define cdecl
* #define pascal
* #define far
* #define void int
*
*/
#ifndef _MODEM_H_INCLUDED
#define _MODEM_H_INCLUDED
#define TRUE 1
#define FALSE 0
struct _fossil_info
{
int size;
char majver;
char minver;
char far *id;
int input_size;
int input_free;
int output_size;
int output_free;
char width;
char height;
char baud;
};
int pascal fossil_getcw(void );
void pascal fossil_getxy(char *row,char *col);
int fossil_wherex(void );
int fossil_wherey(void );
void pascal fossil_gotoxy(char row,char col);
int pascal fossil_inf(struct _fossil_info far *finfo);
int pascal fossil_peek(void );
void cdecl fossil_putc(char chr);
void cdecl fossil_puts(char *str);
int pascal mdm_baud(int bod);
void pascal mdm_break(unsigned int hundredths);
int pascal mdm_cmd(char *command);
int pascal mdm_deinit(void );
char pascal mdm_dump(char buffer);
int pascal mdm_init(int prt);
void pascal mdm_pputs(char *str);
int cdecl mdm_printf(char *format,...);
void pascal mdm_watchdog(int watch);
int pascal mdm_blockwrite(int max_chars,char *offset);
#define mdm_halt() mdm_ctrlc(1)
#define mdm_getc() (mdm_avail() ? mdm_ggetcw() : -1)
#define Mdm_Flow_On() Mdm_Flow(FLOW_on)
#define Mdm_Flow_Off() Mdm_Flow(FLOW_partial_off)
#ifdef OS_2
#ifndef COMMAPI
#include "comm.h"
#endif
extern void com_XON_enable(void);
extern void com_XON_disable(void);
extern void com_DTR_on(void );
extern void com_DTR_off(void );
extern void com_break(int on);
extern void MDM_ENABLE(int ignore);
extern void MDM_DISABLE(void );
extern int Cominit(int port);
void ShowMdmSettings(void);
int pascal mdm_ctrlc(char mask);
void pascal mdm_dtr(char dtr);
/*void pascal mdm_flow(int flow);*/
#define mdm_flow(f) /*PLF Sun 04-22-1990 19:48:12 */
void vbuf_flush(void);
#define mdm_peek() ComPeek(hcModem)
#define mdm_pputcw(c) ComPutc(hcModem,c)
#define mdm_ggetcw() (!ComTxWait(hcModem,-1L)?ComGetc(hcModem):0)
#define mdm_fflush() ComTxWait(hcModem, -1L)
#define CARRIER() (ComIsOnline(hcModem))
#define carrier() CARRIER()
#define out_empty() (ComOutCount(hcModem)==0)
#define mdm_avail() ComInCount(hcModem)
extern HCOMM hcModem;
#else
void pascal mdm_fflush(void );
unsigned short pascal far CallFossil(int FOSSIL_function,int AL);
#define CallFossilNR CallFossil
#define mdm_pputc(chr) ((unsigned char)CallFossil(FOSSIL_xmit,chr))
#define mdm_pputcw(chr) CallFossilNR(FOSSIL_xmitw,chr)
#define mdm_ggetcw() (CallFossil(FOSSIL_recvw,0) & 0xff)
#define mdm_status() CallFossil(FOSSIL_status,0)
#define mdm_peek() ((int)CallFossil(FOSSIL_peek,0))
/* The "& 0x00ff" kludge is necessary because X00 is broken, and *
* it forgets to zero out the AH register in this call... O!Comm and *
* others do it correctly, though. */
#define mdm_ctrlc(mask) (!local && (CallFossil(FOSSIL_ctrlc,mask) & 0x00ff)==0x0001)
#define mdm_dtr(dtr) CallFossilNR(FOSSIL_dtr,dtr)
#define mdm_flow(flow) CallFossilNR(FOSSIL_flow,(flow) | 0xf0)
#define carrier() (mdm_status() & STATUS_dcd)
#define out_empty() (local ? TRUE : (mdm_status() & STATUS_outempty))
#define out_full() (local ? FALSE : !(mdm_status() & STATUS_roomavail))
#define mdm_avail() (local ? FALSE : (mdm_status() & STATUS_anydata))
/* For the Binkley stuff */
#define CARRIER() carrier()
#define OUT_EMPTY() out_empty()
#define OUT_FULL() out_full()
#define MDM_AVAIL() mdm_avail()
#endif
#define FOSSIL_baud 0x00
#define FOSSIL_xmitw 0x01
#define FOSSIL_recvw 0x02
#define FOSSIL_status 0x03
#define FOSSIL_init 0x04
#define FOSSIL_deinit 0x05
#define FOSSIL_dtr 0x06
#define FOSSIL_ttick 0x07
#define FOSSIL_flushout 0x08
#define FOSSIL_dumpout 0x09
#define FOSSIL_dumpin 0x0a
#define FOSSIL_xmit 0x0b
#define FOSSIL_peek 0x0c
#define FOSSIL_kpeek 0x0d
#define FOSSIL_getcw 0x0e
#define FOSSIL_flow 0x0f
#define FOSSIL_ctrlc 0x10
#define FOSSIL_gotoxy 0x11
#define FOSSIL_getxy 0x12
#define FOSSIL_putc 0x13
#define FOSSIL_watchdog 0x14
#define FOSSIL_bputc 0x15
#define FOSSIL_attfunc 0x16
#define FOSSIL_reboot 0x17
#define FOSSIL_blockread 0x18
#define FOSSIL_blockwrite 0x19
#define FOSSIL_break 0x1a
#define FOSSIL_info 0x1b
#define FOSSIL_extapp_inst 0x7e
#define FOSSIL_extapp_dest 0x7f
#define INIT_ok 0x00
#define INIT_alreadyopen 0x01
#define INIT_nofossil 0x02
#define BAUD300 0x43
#define BAUD600 0x63
#define BAUD1200 0x83
#define BAUD2400 0xa3
#define BAUD4800 0xc3
#define BAUD9600 0xe3
#define BAUD19200 0x03
#define BAUD38400 0x23
#define FLOW_txoff 0x01
#define FLOW_cts 0x02
#define FLOW_dsr 0x04
#define FLOW_rxoff 0x08
#define DUMP_output 0x00
#define DUMP_input 0x01
#define DUMP_all 0x02
#define DTR_down 0x00
#define DTR_up 0x01
#define FLOW_on 0x00
#define FLOW_partial_off 0x01
#define FLOW_off 0x02
#define MAX_cmdlen 28 /* Maximum length of command modem will return */
#define CTRLC_off 0x00
#define CTRLC_on 0x01
#define XMIT_disable 0x00
#define XMIT_enable 0x02
#define WATCHDOG_on 0x01
#define WATCHDOG_off 0x00
#define BREAK_on 0x01
#define BREAK_off 0x00
#define STATUS_active 0x0008 /* FOSSIL is active */
#define STATUS_dcd 0x0080 /* Carrier detect */
#define STATUS_anydata 0x0100 /* Some data in input buffer */
#define STATUS_overrun 0x0200 /* Input buffer overrun */
#define STATUS_parityrerr 0x0400 /* Parity error */
#define STATUS_framingerr 0x0800 /* Framing error */
#define STATUS_roomavail 0x2000 /* Room available in output buffer */
#define STATUS_outempty 0x4000 /* Output buffer is empty */
typedef enum {MDM_none=-1,MDM_ok,MDM_nocarrier,MDM_busy,MDM_nodialtone,
MDM_dialtone,MDM_error,MDM_voice,MDM_ring,MDM_ringing,
MDM_connect3,MDM_connect6,MDM_connect12,MDM_connect24,
MDM_connect48,MDM_connect96,MDM_connect19,MDM_connect38,
MDM_timeout} MDM_RESPONSE;
#endif